REPEAT

Description

This element is a static repeat loop. It enables the designer to repeat several times the same piece of code, with a change in an index variable for each instance. It offers several ways of defining the index for the loop.

Attributes
Name Value Type Default Value Description Comment V.

index_name

string

index

name of the variable used for the index in the loop.

for nested repeats it is necessary to define different names for the index variable to avoid conflicts.

1.7

count

integer or a a mathematical formula using previously defined variables

0

number of repeats.

This is number of repeats for the code contained inside the REPEAT element.

1.7

start

integer or a mathematical formula using previously defined variables

0

start value for the index published in the repeat loop.

To be used with the count attributes. Defines the list of values for the index variable.

1.7

index_list

list of semi-column separated values (strings)

empty

List of values for the index variable. Also implies the number of repeats.

This attribute overrides the start/count attributes.

1.7

Syntax

The following code:

<REPEAT count="2" start="1">
	<ELEMENTA attribute_a="$index$"/>
</REPEAT>

Is equivalent to:

<ELEMENTA attribute_a="1"/>
<ELEMENTA attribute_a="2"/>

Similarly, using the index_list attribute instead, the following code:

<REPEAT index_list="A;B">
	<ELEMENTA attribute_a="$index$"/>
</REPEAT>

Is equivalent to:

<ELEMENTA attribute_a="A"/>
<ELEMENTA attribute_a="B"/>

And you can modify the index_name attribute for nested loops, so that the following code:

<REPEAT count="2" start="1">
  <REPEAT index_name="sub_index" count="2" start="1">
    <ELEMENTA attribute_a="$index$-$sub_index$"/>
  </REPEAT>
</REPEAT>

Is equivalent to:

<ELEMENTA attribute_a="1-1"/>
<ELEMENTA attribute_a="1-2"/>
<ELEMENTA attribute_a="2-1"/>
<ELEMENTA attribute_a="2-2"/>

A formula can be used to compute the index and start values. For example the following code:

<VARIABLE id="a" value="1">
<VARIABLE id="b" value="0">
<REPEAT count="$a$*2" start="$b$+1">
  <ELEMENTA attribute_a="$index$"/>
</REPEAT>

Is equivalent to:

<ELEMENTA attribute_a="2"/>
<ELEMENTA attribute_a="3"/>